package com.xq.cn;

import com.xq.cn.enums.TypeEnum;
import com.xq.cn.views.Panel;

import javax.swing.*;
import java.awt.*;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;

public class Main {
    public static void main(String[] args) {

//        象棋--棋盘已开发，还未开发棋子和玩法
        JFrame jFrame = new JFrame(TypeEnum.CHINESE_CHESS.getDescription());
        jFrame.setSize(800, 800);//设置窗口宽高
        Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();//获取桌面信息
        int x = screenSize.width / 2 - jFrame.getWidth() / 2;
        int y = screenSize.height / 2 - jFrame.getHeight() / 2;
        //jFrame.setLocation(x, y);//设置窗口位置
        jFrame.setLocationRelativeTo(null);//设置窗口位置
        jFrame.setUndecorated(false);//设置无边框
        jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        jFrame.add(new Panel(TypeEnum.CHINESE_CHESS.getType(), 800, 800,9,10));
        jFrame.setVisible(true);//窗口显示

//        五子棋--棋盘已开发，已完成开发棋子和玩法
//        JFrame jFrame2 = new JFrame(TypeEnum.GOMOKU.getDescription());
//        jFrame2.setSize(800, 800);//设置窗口宽高
//        //jFrame.setLocation(x, y);//设置窗口位置
//        jFrame2.setLocationRelativeTo(null);//设置窗口位置
//        jFrame2.setUndecorated(false);//设置无边框
//        jFrame2.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//        Panel panel = new Panel(TypeEnum.GOMOKU.getType(), 800, 800, 15, 15);
//        jFrame2.add(panel);
//        listener(panel, jFrame2);//监听重置棋盘
//        jFrame2.setVisible(true);//窗口显示
    }


    /**
     * 监听游戏结束自动重绘面板
     *
     * @param panel  面板
     * @param jFrame 框架
     */
    public static void listener(Panel panel, JFrame jFrame) {
        panel.addPropertyChangeListener(new PropertyChangeListener() {
            @Override
            public void propertyChange(PropertyChangeEvent evt) {
                if (evt.getPropertyName().equals("status") && evt.getNewValue() != null && (Boolean) evt.getNewValue()) {
                    com.xq.cn.views.Panel panelNew = new Panel(TypeEnum.GOMOKU.getType(), 800, 800, 15, 15);
                    jFrame.add(new JLabel("This is Panel 2"));
                    jFrame.remove(panel);
                    jFrame.add(panelNew);
                    jFrame.revalidate(); // 重新验证布局
                    jFrame.repaint();// 请求重绘组件
                    listener(panelNew, jFrame);
                }
            }
        });
    }
}